<?php

class gerar_visualizar {

    protected $tabela;
    protected $classe;
    protected $c;
    protected $r;
    protected $campos = array();
    
    
    public function __construct() {
        $this->c = model_conn::get_conn();
        
    }

    public function setTabela($tabela) {
        $this->tabela = $tabela;
    }

    public function setNomeClasse($prefixo, $sufixo) {
        $this->classe = $prefixo . $sufixo;
    }

    protected function getColunaPK() {

        $this->r = $this->c->getDatabaseInfo();

        foreach ($this->r as $tables) {
            foreach ($tables as $table => $columns) {
                if ($table == $this->tabela) {
                    foreach ($columns as $column => $column_info) {
                        if ($column_info[0] == 1) {
                            return ucfirst($column);
                        }
                    }
                }
            }
        }
        return 'SEM_PK';
    }

    public function adicionarCampo($campo) {
        array_push($this->campos, $campo);
    }

    public function getResultado() {
        $r = '';

        $r.= "<?

class $this->classe extends visao {

public function render() {
    ?>
        <h3>{$this->tabela}s</h3>
        <a href=\"?acao=$this->tabela.adicionar\">Adicionar $this->tabela</a><br><br>
        <?
        
        
        
        
       
\$find = new EASYNC___FIND__$this->tabela();
        \$colecao = \$find->get();
        
        if(\$colecao->getAmount() > 0) {
        
            \$t = new modelo__tabela();
            \$t->adicionar_colunas(array('Opções'".$this->camposColunas()."));


            for(\$i=0; \$i<\$colecao->getAmount(); \$i++) {
                $$this->tabela = \$colecao->getByIndex(\$i);
                \$id = \${$this->tabela}->get".$this->getColunaPK()."();
                
                \$t->adiciona_linha(array(
                    '<a href=\"?acao=$this->tabela.detalhes&id=' . \$id . '\">detalhes</a>
                        | <a href=\"?acao=$this->tabela.editar&id=' . \$id . '\">editar</a> | 
                            <a href=\"?acao=$this->tabela.remover&id=' . \$id . '\">remover</a>'";
                
                
                
                foreach ($this->campos as $v) {
            $r.= ",
                    \${$this->tabela}->get" . ucfirst($v) . "()";
            
        }
                
                
                $r.= "
                ));
            }
            \$t->fecha_tabela();
        } else {
            echo 'Nenhum(a) $this->tabela encontrado(a).';
        }
    }
}
?>";
                    return $r;
    }
    
    protected function camposColunas() {
        $r = '';
        foreach ($this->campos as $v) {
            $r.= ", '" . $v . "'";
        }
        return $r;
    }

}

?>
